The present invention is an improvement in the field of computer-aided design, and more particularly, an advancement in the solid modeling arts.
The use of a three-dimensional (3D) representation of an object (commonly referred to as a solid) can be an advantage to the part designer using a Computer Aided Design (CAD) system. Solid modeling is a computer representational method of describing objects in three-dimension (3D) space. There are various techniques known in the art in which this may be implemented. Solid models are commonly constructed either with primitive or boundary definition, which permit modeling the solid nature of the object, though the models often appear on the output device in a similar manner as wire frame representations. The modeler program has an understanding of what geometry coordinates would be formed "inside" and "outside" the modeled body. The solid model is manipulated by a solid model software package.
Two-dimensional (2D) representations of objects are projections of object features onto a viewing plane, typically embodied in 2D drawings. In addition to geometric elements, the 2D drawings may also contain text, dimensions and other supporting information, i.e., annotations. The two dimensional representation can typically be manipulated by a two dimensional software package.
Some CAD systems are designed such that the 2D portion is linked to the 3D portion, and changes in the solid (3D portion) cause appropriate changes in the 2D drawing. Such systems are described as associative. The particular feature of an associative system that pertains to this invention is the built-in ability to update the 2D drawing and dimensions when a change is made in the solid. This capability is due to the associativity between the dimensions, the solid, and the 2d representation. A limitation of prior associative system is the too-specific coupling to the solid, which prevents a more general usage, such as redimensioning between different solids or to the creation and dimensioning of multi-facetted cross sections. Associative systems usually rely on parametric methods to manage their many positive attributes. Parametric, in this case, refers to the fact that each feature of the body must be described in terms of some other feature or features at the time of its creation. For example, the location of a hole being placed in a block must be completely specified (perhaps by giving its distance from two edges). Though helpful in many ways, including updating the drawing to the model changes, parametric requirements can be a problem at times. It can be a disadvantage to be required to always enter the parameters for each feature as it is created since the relationships of the new feature to the existing ones may not yet be known. If it is necessary to change the reference items (e.g., pick two other edges as references), the user must usually create a new hole and then delete (or inactivate) the old hole. Thus, this can be a tiresome requirement.
There exist some solid modeling implementations which are strictly solid modelers. They provide no functionality in depicting dimensions, text, or other supporting annotation in conjunction with the solid model. With rare exception, this type of annotation is a necessary accompaniment with the geometry. One technique to remedy this problem is to provide an interface between the solid modeler and a 2D documentation package. The 2D documentation package typically contains a group of tools to both annotate a 2D drawing and to quantify different aspects of the planar projections used to depict an object that is, frequently, intended for manufacture. These tools could include a dimensioning package that allows the placement of dimensions, with various tolerance descriptions, on the drawing; a text generating package to allow the placement of Title, Drawing Identification Numbers, note or any other verbiage on the drawing; a symbol generating package to take care of the need of producing drawings using the industry standard symbols, for example, those used in Geometric Dimensioning; and a minimum set of geometry creation tools to allow the generation of whatever lines, arcs, arrows, etc. that would be needed to complete the documentation by adding partitioning, underlining, indicating sectioning planes or any of many needs, and the 2D drawing capabilities needed to produce the 2 D drawings being documented.
The interface between the solid modeler and the 2D documentation package generates the feature projections onto a plane. The planar features are passed to the 2D documentation package which supports dimensioning, text, and other annotation features. The process of passing the 3D model features into the 2D documentation package will be referred to herein as "laying out" the solid model or the "layout process." In other words, the layout process refers to the process of projecting the solid model onto a plane. The solid model may be oriented in different locations relative to the plane on which the projection is made. This creates different views of the solid model. Some common views are front, side, top, bottom, left, right, and isometric.
An implementation of a strict solid model, documentation package, and layout mechanism is Hewlett Packard's Mechanical Engineering Series 30 (hereinafter the "ME 30" or "HP ME 30"). The sequence of use is typically to create a solid model, generate a 2D representation using the layout mechanism, and add dimension, text, and other supporting annotation to the 2D representation. The 2D representation, which may include annotation, will hereinafter be called a "drawing."
The ME 30 system, through the layout mechanism, provides a one-way, one-time association from the solid model to the 2d documentation package. A solid model system is typically used to model objects prior to their construction. The solid model is frequently changed as the design evolves from initial conception to final form. Any change to the solid model will once again require the invocation of the layout process if the geometry in the 2D world is to be an accurate representation of the solid model. Each invocation of the layout process generates a new 2D representation of the solid model. A problem occurs because there is no method of transferring the annotations from the previous 2D drawing to the new 2D drawing. This means that the new layout must be dimensioned and annotated once again, which may be a very time consuming task.
For anything but extreme feature changes to the part, redimensioning is considered unacceptable in the typical design process. Therefore, in the typical conventional design process, the part is layed out once and then dimensioned. From this point on, the solid model and the 2D drawing become autonomous entities. Changes can be made to the model and these may (or may not be) manually depicted in the 2D drawing. This conventional process is generally depicted in the operational flow diagram of FIG. 1. Thus, the 3D model is initially created (step 1), and the first layout drawing is created (step 2) and the dimensions added (step 3). Now assume the design process involves some changes to the product under design. The 3D model is modified (step 4). Without re-invoking the layout process, the designer modifies the geometry and adds dimensions to the layout drawing (step 5). The modified 3D model and the layout drawing have now become autonomous entities. As this process is repeated (steps 6 and 7), the solid model and 2D drawing may diverge even further. Now there is no assurance that the modified 2D drawing correctly reflects the solid model.
The design process illustrated in FIG. 1 presents several problems. First, since there is no assurance that the modified drawing correctly represents the solid model, two definitions of the object geometry exists. There is a high probability that a Computer Aided Machine (CAM) using the solid model as the geometry definition will produce a different object from a CAM using the drawing as a geometry definition. Hence, there are two geometry definitions - the solid model and the drawing. Since different objects may result, considerable time and money may be wasted if objects are built to the wrong specification, caused by confusion as to what is the master geometric definition.
Second, often users will abandon the solid model after its initial creation. They will then only modify the drawing. The whole purpose of design is to implement functionality through the interacting forms of different objects. The solid modeling process enables the user to model the objects and their interaction with each other. To abandon this ability later in the design process defeats the purpose of this tool. Frequently a solid model, later in the design process, may be useful. However, if they have been abandoned, it may be too time consuming to bring the models up the current geometric definition.
Third, the user often does not model all of the geometric detail of the object because they know that they will abandon the solid shortly down the design process. Again this defeats the purpose of solid modeling which is to mimic the object for analysis with other objects before it is even built.
It is therefore an object of the invention to provide an interface between a solid model and a 2D documentation package which automates a re-layout process, whereby geometry changes in the solid model can be automatically incorporated into a revised set of layout drawings.
A further object of the invention is to provide such an interface which automatically transfers valid dimensional annotations from one layout drawing to the next version or re-layout of that drawing.